package com.open.system.service;


import com.open.base.model.Menu;
import com.open.common.model.Page;

import java.util.List;
import java.util.Map;

/**
 * 菜单信息
 *
 * @author 大树03
 * @date 2025-02-02 01:03
 */
public interface IMenuService{

    /**
     * 添加对象
     * @param model
     * @return boolean
     * @date 2025-02-02 01:03
     */
    Boolean save(Menu model) ;

    /**
     * 修改对象
     * @param model
     * @return boolean
     * @date 2025-02-02 01:03
     */
    Boolean update(Menu model) ;

    /***
     * 根据主键查询
     *
     * @param pk 主键
     * @return Menu
     */
    Menu findByPk(Long pk) ;

    /**
     * 根据条件查询记录数
     *
     * @param item
     * @return Integer
     */
    Integer countByModel(Menu item) ;

    /**
     * 分页查询
     *
     * @param page
     * @param model
     * @return
     */
    Page<Menu> findPage(Page<Menu> page, Menu model);

    /**
     * 根据条件查询
     *
     * @param model
     * @return
     */
    List<Menu> findByModel(Menu model);

    /**
     * 根据条件查询
     *
     * @param map
     * @return
     */
    List<Menu> findByModel(Map<String,Object> map);

    /**
     * 根据主键删除
     *
     * @param pk
     * @return boolean
     */
    Boolean remove(Long pk) ;

    // 根据角色id查询菜单
    List<Menu> findByRoleId(Long roleId);

    // 多条件查询菜单
    List<Menu> findByMap(Map<String, Object> map);

    List<Menu> findAllMenu();
}